machine test;

// example

state s1 {
    entry s1_entry;
    on e1 -> .s2;
    state s2 {
        entry s1_s2_entry;
        on e1 (s1_s2_e1_guard) s1_s2_e1_action;
        on e2 -> s2.s3;
        exit s1_s2_exit;
    }
    exit s1_exit;
}
state s2 {
    entry s2_entry;
    state s3 {
        entry s2_s3_entry;
        on e2 -> .s1;
        exit s2_s3_exit;
    }
    initial state s1 {
        entry s2_s1_entry;
        on e1 s2_s1_e1_action -> .s1;
        exit s2_s1_exit;
    }
    final state s1 {
        entry s2_s1_entry;
        on e1 s2_s1_e1_action -> .s1;
        exit s2_s1_exit;
    }
    exit s2_exit;
}
